/*
  学习目标：setState - 第二个参数
  语法: setState({},  () => { 可以获取更新后的值})
  注意: 
    👎 早期的写法, 不推荐
    👎 容易写出回调地域, 阅读困难
    👎 不会减少render执行次数,  会浪费性能
*/

import React, { Component } from 'react';

export default class App extends Component {
  state = {
    count: 0,
  };

  handleClick = () => {
    this.setState({ count: this.state.count + 1 }, () => {
      //  每次state的值更新后, 回调函数会自动执行, 可以获取到更新后的值
      this.setState({ count: this.state.count + 2 }, () => {
        this.setState({ count: this.state.count + 3 });
      });
    });
  };

  render() {
    console.log('render被执行了  ----->  '); // ? render执行了几次??
    const { count } = this.state;
    return (
      <div>
        <h1>{count}</h1>
        <button onClick={this.handleClick}>点我</button>
      </div>
    );
  }
}
